package com.isoftstone.securityframework.device;

import java.util.List;

import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.subject.Subject;

import com.isoftstone.securityframework.api.Account;
import com.isoftstone.securityframework.api.Permission;
import com.isoftstone.securityframework.device.domain.DeviceGroup;
import com.isoftstone.securityframework.device.exception.NullDeviceException;
import com.isoftstone.securityframework.device.exception.UnknowDeviceException;
/**
 * 设备顶层接口
 * @author david
 *
 */
public interface Device extends Subject{

	Integer getId();
	String getDeviceFlag();

	Integer getStatus();
	
	List<Account> getAccounts();
	List<Permission> getPermissions();
	List<DeviceGroup> getGroups();

	void login()throws NullDeviceException,UnknowDeviceException,AuthenticationException;
	void login(String deviceFlag)throws NullDeviceException,UnknowDeviceException,AuthenticationException;
	
}
